package cn.iocoder.yudao.module.crm.service.followup;

import cn.iocoder.yudao.module.crm.controller.admin.cluetranslog.vo.ClueTransLogSaveReqVO;
import cn.iocoder.yudao.module.crm.controller.admin.followup.vo.CrmFollowTypeConfigSaveReqVO;
import cn.iocoder.yudao.module.crm.dal.dataobject.cluetranslog.ClueTransLogDO;
import cn.iocoder.yudao.module.crm.dal.dataobject.followup.CrmFollowTypeConfigDO;

import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
import java.util.Map;

public interface CrmFollowTypeConfigService {
    /**
     * 创建规则执行记录
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createConfig(@Valid CrmFollowTypeConfigSaveReqVO createReqVO);

    /**
     * 删除记录
     *
     * @param id 编号
     */
    void deleteConfig(Long id);

    /**
     * 获得配置
     *
     * @param id 编号
     * @return 规则执行记录
     */
    CrmFollowTypeConfigDO getConfig(Long id);

    Long updateConfig(CrmFollowTypeConfigSaveReqVO createReqVO);

    List<CrmFollowTypeConfigDO> getListByModuleId(Long moduleId);

    List<CrmFollowTypeConfigDO> getList(Collection<Long> ids);

    Map<Long, CrmFollowTypeConfigDO> getMap(Collection<Long> ids);

    void initFollowTypeConfig();
}
